package controller;

import java.rmi.RemoteException;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.naming.NamingException;
import javax.xml.rpc.ServiceException;

import com.beans.ws.Recado;
import com.beans.ws.RecadoBean;
import com.beans.ws.RecadoBeanServiceLocator;

@ManagedBean(name = "RecadoBean")
@RequestScoped
public class RecadoBeanController {

	private RecadoBean recadoBean;

	private int id;
	private String nome;
	private String recado;
	private Recado[] listarRecadoss;
	private Recado[] listarRecados;
	private Recado recado1 = new Recado();
	private Recado recado2 = new Recado();

	public RecadoBeanController() throws NamingException, ServiceException {
		recadoBean =  (new RecadoBeanServiceLocator()).getRecadoBeanPort();
	}

	public Recado[] getListarRecadoss() throws RemoteException {
		listarRecadoss = recadoBean.findAllRecado();
		for (Recado r : listarRecadoss) {
			nome = r.getNome();
		}
		return listarRecadoss;
	}

	public void setListarRecadoss(Recado[] listarRecadoss) {
		this.listarRecadoss = listarRecadoss;
	}

	public Recado[] getListarRecados() throws RemoteException {
		listarRecados = recadoBean.findAllRecado();
		return listarRecados;
	}

	public void setListarRecados(Recado[] listarRecados) {
		this.listarRecados = listarRecados;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getRecado() {
		return recado;
	}

	public void setRecado(String recado) {
		this.recado = recado;
	}

	//-------------------------------------------------------

	public void limpar(ActionEvent e) {
		this.nome = "";
		this.recado = "";
	}

	public String enviarRecado() throws RemoteException {

		Recado recado1 = new Recado();
		recado1.setNome(this.nome);
		recado1.setRecado(this.recado);
		recadoBean.saveRecado(recado1);

		this.nome = "";
		this.recado = "";

		FacesMessage msg = new FacesMessage("Recado Enviado Com Sucesso.");
		FacesContext fc = FacesContext.getCurrentInstance();
		fc.addMessage("msg", msg);
		return "recado";
	}

	public String removerRecado() throws RemoteException {

		recado2 = recadoBean.findbyIdRecado(id);
		if (recado2 == null) {
			FacesMessage msg = new FacesMessage("Escolha Um Recado.");
			FacesContext fc = FacesContext.getCurrentInstance();
			fc.addMessage("invalida", msg);
			return "lrecados";
		} else {
			recado1 = recadoBean.findbyIdRecado(id);

			recadoBean.deleteRecado(recado1);

			FacesMessage msg = new FacesMessage("Recado Removido Com Sucesso.");
			FacesContext fc = FacesContext.getCurrentInstance();
			fc.addMessage("sucesso", msg);
			return "lrecados";
		}
	}
}
